Group Predictions

Row

Win percentage for the week

Season Win Percentage

Games Correct

199

Games Picked

272

Number of predictions

92

Row

This Week’s Predictions
Game Prediction Winner Correct Correct Votes Correct Percent
1 Baltimore Ravens Baltimore Ravens Yes 91 0.9891
2 Cincinnati Bengals Cincinnati Bengals Yes 47 0.5109
3 Buffalo Bills New England Patriots No 10 0.1087
4 Atlanta Falcons Carolina Panthers No 3 0.0326
5 Green Bay Packers Chicago Bears No 3 0.0326
6 Houston Texans Houston Texans Yes 86 0.9348
7 Indianapolis Colts Indianapolis Colts Yes 74 0.8043
8 Tampa Bay Buccaneers Tampa Bay Buccaneers Yes 87 0.9457
9 Philadelphia Eagles Philadelphia Eagles Yes 84 0.9130
10 Washington Commanders Washington Commanders Yes 77 0.8370
11 Denver Broncos Denver Broncos Yes 48 0.5217
12 Los Angeles Chargers Los Angeles Chargers Yes 89 0.9674
13 Miami Dolphins New York Jets No 11 0.1196
14 Los Angeles Rams Seattle Seahawks No 29 0.3152
15 Arizona Cardinals Arizona Cardinals Yes 58 0.6304
16 Detroit Lions Detroit Lions Yes 66 0.7174

Individual Predictions

row

Individual Table

Individual Results
Week 18
Name Weekly # Correct Percent Weeks Picked Season Percent Adj Season Percent Season Trend
Week 1 Week 2 Week 3 Week 4 Week 5 Week 6 Week 7 Week 8 Week 9 Week 10 Week 11 Week 12 Week 13 Week 14 Week 15 Week 16 Week 17 Week 18
Robert Cunningham 14 9 10 12 8 12 11 11 12 9 11 10 NA 10 13 12 14 12 0.7500 17 0.7422 0.7010
Aubrey Conn 13 7 10 9 8 12 12 9 13 9 10 11 16 10 12 12 15 12 0.7500 18 0.7353 0.7353
Michael Pacifico 13 8 7 9 9 12 12 10 14 9 11 10 14 10 12 12 14 12 0.7500 18 0.7279 0.7279
Chris Papageorge 14 8 10 11 8 12 12 12 11 8 9 7 15 7 11 11 15 12 0.7500 18 0.7096 0.7096
Patrick Tynan 12 8 7 9 8 12 NA 12 12 10 10 6 16 11 13 NA 12 12 0.7500 16 0.7054 0.6270
Erik Neumann 12 8 9 9 7 13 10 11 12 9 10 NA NA 10 15 11 NA 12 0.7500 15 0.6960 0.5800
Jason Schattel 13 7 6 9 10 11 9 10 11 9 10 10 13 9 13 12 14 12 0.7500 18 0.6912 0.6912
Antonio Mitchell 11 7 8 9 9 11 10 11 10 8 8 9 13 9 13 10 13 12 0.7500 18 0.6654 0.6654
Jonathon Leslein 10 8 7 10 8 12 10 10 8 10 7 10 12 10 13 12 NA 12 0.7500 17 0.6602 0.6235
Steward Hogans 10 7 10 NA NA NA NA 10 13 8 8 9 11 8 11 12 NA 12 0.7500 13 0.6548 0.4729
William Schouviller 12 7 9 9 11 13 10 9 NA 7 11 8 15 11 13 11 11 11 0.6875 17 0.6926 0.6541
Edward Ford 9 7 6 10 5 10 10 13 11 9 12 10 14 11 14 11 12 11 0.6875 18 0.6801 0.6801
Ramar Williams 10 8 7 11 8 11 11 10 8 8 9 8 13 10 12 14 14 11 0.6875 18 0.6728 0.6728
Rafael Torres 12 9 8 7 8 10 12 10 12 11 11 7 12 10 NA 11 NA 11 0.6875 16 0.6708 0.5963
Darvin Graham 12 7 6 9 8 11 9 NA 10 9 9 10 NA 11 14 NA 12 11 0.6875 15 0.6607 0.5506
Jason Jackson 12 7 5 6 5 12 9 11 10 10 12 9 NA 10 13 12 13 11 0.6875 17 0.6523 0.6161
Vincent Scannelli 11 7 7 11 8 8 11 12 9 8 9 7 12 NA 11 13 12 11 0.6875 17 0.6448 0.6090
Nahir Shepard 11 8 10 8 6 12 8 12 9 9 11 10 13 9 NA 9 9 11 0.6875 17 0.6445 0.6087
Diance Durand 9 9 12 7 8 10 9 11 11 7 9 8 12 NA 11 7 10 11 0.6875 17 0.6216 0.5871
Anthony Rockemore 13 8 6 8 7 NA 8 NA NA 9 9 9 12 10 12 9 NA 11 0.6875 14 0.6209 0.4829
Robert Gelo 14 8 9 9 8 13 13 11 12 10 10 9 12 11 11 13 14 10 0.6250 18 0.7243 0.7243
Bradley Hobson 13 7 8 11 7 13 10 10 11 8 NA 10 16 11 14 9 14 10 0.6250 17 0.7054 0.6662
Randy Dick 11 7 8 8 9 14 10 10 13 11 10 9 14 10 12 12 13 10 0.6250 18 0.7022 0.7022
Jeremy Stieler 11 9 6 11 6 13 11 11 11 9 9 8 16 10 14 13 11 10 0.6250 18 0.6949 0.6949
Christopher Sims 11 9 10 8 7 10 12 14 11 9 8 9 16 10 11 11 13 10 0.6250 18 0.6949 0.6949
Keven Talbert 10 7 9 11 9 14 13 9 9 11 10 10 12 10 10 12 NA 10 0.6250 17 0.6875 0.6493
Kevin Kehoe 13 7 9 10 8 13 12 11 9 8 8 8 13 9 14 12 12 10 0.6250 18 0.6838 0.6838
Nicholas Cinco 12 8 NA NA 6 11 11 12 11 11 8 9 12 8 14 11 10 10 0.6250 16 0.6833 0.6074
Jennifer Bouland 13 8 10 7 8 11 10 11 9 9 12 10 NA 11 11 NA 13 10 0.6250 16 0.6792 0.6037
Kevin Buettner 12 8 8 10 7 11 10 9 10 10 10 8 16 10 13 11 NA 10 0.6250 17 0.6758 0.6383
Philip Driskill 12 7 8 10 8 NA 13 11 10 NA NA 9 14 10 NA NA NA 10 0.6250 12 0.6703 0.4469
Brayant Rivera 10 8 9 8 6 13 11 10 12 9 11 10 13 10 14 8 10 10 0.6250 18 0.6691 0.6691
David Plate 10 8 8 8 9 NA NA NA 13 10 8 9 14 NA 12 11 12 10 0.6250 14 0.6636 0.5161
George Mancini 11 8 6 NA 8 6 12 NA 11 9 11 10 13 11 NA 12 NA 10 0.6250 14 0.6635 0.5161
Montee Brown 10 6 8 7 8 14 11 10 8 10 10 9 14 8 13 11 11 10 0.6250 18 0.6544 0.6544
George Brown 14 7 8 7 6 11 10 12 9 12 11 8 12 11 10 7 12 10 0.6250 18 0.6507 0.6507
Jeffrey Zornes 9 11 6 8 7 10 9 11 9 10 NA 8 15 11 11 9 13 10 0.6250 17 0.6473 0.6113
Cheryl Brown 11 6 9 8 8 10 NA 9 8 10 11 9 14 10 10 12 NA 10 0.6250 16 0.6432 0.5717
Rachel Follo 15 8 6 6 9 7 10 11 9 9 10 7 13 11 11 8 13 10 0.6250 18 0.6360 0.6360
Marcus Evans 11 8 NA 8 7 10 7 9 10 6 11 8 12 8 13 9 11 10 0.6250 17 0.6172 0.5829
Robert Lynch 6 9 8 6 9 7 7 12 NA 9 7 8 15 NA 13 13 11 10 0.6250 16 0.6148 0.5465
Jack Wheeler 9 6 5 10 8 NA 9 9 10 8 10 7 15 11 9 11 NA 10 0.6250 16 0.6074 0.5399
Marc Agne 14 7 9 13 6 13 10 9 12 10 10 7 16 9 13 12 13 9 0.5625 18 0.7059 0.7059
Anthony Bloss 13 8 8 11 8 13 11 11 9 7 10 9 14 9 13 12 14 9 0.5625 18 0.6949 0.6949
David Dupree 13 8 10 9 7 11 11 11 12 NA 9 8 13 10 12 12 13 9 0.5625 17 0.6899 0.6516
Heather Ellenberger 13 8 7 8 7 12 11 11 13 9 9 10 14 9 14 11 NA 9 0.5625 17 0.6836 0.6456
Pablo Burgosramos 9 5 8 9 5 14 12 12 12 7 11 10 13 10 14 10 14 9 0.5625 18 0.6765 0.6765
Daniel Baller 14 6 9 8 7 9 10 12 10 10 10 10 15 10 12 11 12 9 0.5625 18 0.6765 0.6765
Ryan Cvik 10 8 9 11 9 11 11 13 10 7 7 9 12 10 13 12 11 9 0.5625 18 0.6691 0.6691
Darryle Sellers 11 11 6 8 9 11 9 10 12 9 12 7 15 9 NA 12 NA 9 0.5625 16 0.6667 0.5926
Zechariah Ziebarth 8 8 8 10 5 10 10 11 11 NA 12 8 15 10 16 10 NA 9 0.5625 16 0.6653 0.5914
Michael Moss 13 8 8 8 10 13 8 9 11 9 10 6 11 10 12 12 13 9 0.5625 18 0.6618 0.6618
Richard Beeghley 11 7 6 11 7 14 10 10 10 8 9 9 14 11 12 11 11 9 0.5625 18 0.6618 0.6618
Karen Richardson 10 9 7 9 11 8 8 12 8 10 9 9 13 10 14 12 NA 9 0.5625 17 0.6562 0.6197
Jeffrey Rudderforth 11 11 10 9 6 7 10 11 12 9 8 8 14 9 11 12 NA 9 0.5625 17 0.6523 0.6161
David Humes 10 9 8 11 5 8 12 8 12 11 11 6 14 9 9 12 13 9 0.5625 18 0.6507 0.6507
Kamar Morgan 12 6 8 5 8 12 9 12 10 8 10 10 16 10 NA 9 12 9 0.5625 17 0.6484 0.6124
Christopher Mulcahy 11 9 7 8 NA 8 9 9 10 9 10 9 13 11 12 10 12 9 0.5625 17 0.6434 0.6077
Louie Renew 9 8 12 4 10 8 8 11 11 8 10 9 NA 10 10 13 13 9 0.5625 17 0.6367 0.6013
Wayne Schofield 7 5 9 5 7 7 11 11 10 8 13 10 13 11 NA 13 12 9 0.5625 17 0.6289 0.5940
Kristen White 14 7 9 9 8 9 9 8 8 9 9 8 13 8 14 9 10 9 0.5625 18 0.6250 0.6250
Ryan Shipley 11 6 10 8 5 9 11 NA 10 NA 9 10 NA NA 10 9 NA 9 0.5625 13 0.5939 0.4289
Randolph Tidd 11 7 8 12 NA 12 11 12 13 9 11 7 16 10 11 12 NA 8 0.5000 16 0.7025 0.6244
Nicole Dike 13 7 8 10 7 10 10 12 10 9 10 8 15 9 13 13 15 8 0.5000 18 0.6875 0.6875
Thomas Brenstuhl 9 8 NA 6 7 9 10 13 11 9 13 9 15 11 14 NA 12 8 0.5000 16 0.6833 0.6074
Stephen Bush 9 7 4 10 9 13 13 9 10 10 8 9 16 10 13 13 13 8 0.5000 18 0.6765 0.6765
George Sweet 13 9 6 10 11 9 11 11 12 7 10 11 12 9 12 12 10 8 0.5000 18 0.6728 0.6728
Shawn Carden 10 9 10 10 8 11 10 11 11 9 8 8 15 9 14 11 NA 8 0.5000 17 0.6719 0.6346
Pamela Augustine 14 9 9 NA 7 11 9 NA 10 NA 10 9 14 9 10 10 NA 8 0.5000 14 0.6619 0.5148
Shaun Dahl 14 7 9 11 10 10 10 8 9 11 8 11 12 11 12 8 NA 8 0.5000 17 0.6602 0.6235
Cade Martinez 10 7 8 8 6 11 11 9 10 10 9 8 15 11 13 11 14 8 0.5000 18 0.6581 0.6581
Paul Seitz 11 9 9 NA 8 10 11 NA NA 7 8 8 14 7 14 NA 13 8 0.5000 14 0.6555 0.5098
Michael Moore 11 6 7 7 8 12 NA 9 9 NA 12 9 16 10 13 11 NA 8 0.5000 15 0.6520 0.5433
Anthony Brinson 11 7 NA 9 10 11 9 12 6 NA NA 8 14 10 NA 11 11 8 0.5000 14 0.6462 0.5026
Brian Patterson 11 6 9 9 6 NA 9 13 NA 9 12 7 14 9 13 10 12 8 0.5000 16 0.6461 0.5743
Trevor Macgavin 12 7 10 8 8 8 9 7 10 7 11 10 16 9 12 12 11 8 0.5000 18 0.6434 0.6434
Walter Archambo 8 8 7 9 6 12 11 11 12 10 10 9 15 9 9 9 12 8 0.5000 18 0.6434 0.6434
Jonathan Smith 11 NA 4 10 7 NA 8 11 10 7 9 7 15 9 15 13 11 8 0.5000 16 0.6405 0.5693
Thomas Mccoy 10 7 6 8 9 11 11 10 12 10 10 8 13 9 11 10 10 8 0.5000 18 0.6360 0.6360
Jared Kaanga 11 9 9 8 7 10 9 11 13 9 9 7 NA 11 11 10 NA 8 0.5000 16 0.6333 0.5629
Terry Hardison 13 8 6 7 4 11 10 12 11 9 11 7 NA NA 11 10 13 8 0.5000 16 0.6214 0.5524
Melissa Printup 8 9 9 6 10 10 10 10 7 10 9 8 13 7 13 11 11 8 0.5000 18 0.6213 0.6213
Gary Lawrence 10 6 5 5 7 9 9 10 9 9 11 8 16 11 11 10 12 8 0.5000 18 0.6103 0.6103
Richard Conkle 7 6 6 8 7 10 12 11 9 NA 8 NA NA 10 9 NA 12 8 0.5000 14 0.5775 0.4492
Sheryl Claiborne-Smith 11 7 NA NA NA 7 7 10 7 7 9 9 10 9 NA NA NA 8 0.5000 12 0.5674 0.3783
Andrew Gray 5 8 9 7 NA NA 7 9 7 11 8 6 5 10 9 NA 9 8 0.5000 15 0.5175 0.4312
Brittany Pillar NA NA NA NA NA 10 12 NA NA 10 11 10 16 11 13 12 13 7 0.4375 11 0.7669 0.4687
Brian Hollmann NA NA NA 8 8 10 10 11 9 8 12 8 16 11 12 10 NA 7 0.4375 14 0.6731 0.5235
Daniel Halse 12 6 8 10 7 13 9 11 11 11 NA 8 14 9 12 12 NA 7 0.4375 16 0.6612 0.5877
James Small 12 NA 9 10 8 10 9 9 10 10 NA 6 11 8 13 11 13 7 0.4375 16 0.6446 0.5730
Keisha Vasquez 8 7 9 9 11 11 9 12 8 8 NA NA 14 NA NA 9 NA 7 0.4375 13 0.6100 0.4406
Bruce Williams 13 9 10 8 9 13 12 10 NA 10 10 9 14 9 12 11 12 6 0.3750 17 0.6887 0.6504
Clayton Grimes 14 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.0000 1 0.8750 0.0486
Tanaysa Henderson NA NA NA NA NA 12 NA NA NA NA NA NA NA NA NA NA NA NA 0.0000 1 0.8571 0.0476
Matthew Blair NA NA NA NA NA 11 10 12 10 9 11 8 15 11 15 10 NA NA 0.0000 11 0.7531 0.4602
Wallace Savage 12 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.0000 1 0.7500 0.0417
Brian Holder 12 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.0000 1 0.7500 0.0417
Sandra Carter 12 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.0000 1 0.7500 0.0417
Michael Linder 11 9 9 NA NA 12 10 11 10 NA 11 NA 13 NA 14 13 13 NA 0.0000 12 0.7312 0.4875
Steven Maisonneuve NA NA NA NA 11 10 11 12 11 8 NA 10 12 9 NA NA NA NA 0.0000 9 0.7231 0.3616
Chester Todd 13 8 8 8 9 13 13 10 9 9 11 9 15 10 12 13 14 NA 0.0000 17 0.7188 0.6789
Nathan Brown 13 8 9 11 9 NA 10 11 14 9 10 10 14 10 12 12 NA NA 0.0000 15 0.7168 0.5973
Jeremy Mounce 12 8 8 NA 10 12 NA NA NA 10 10 NA NA NA 14 NA NA NA 0.0000 8 0.7000 0.3111
Gregory Brown 15 7 6 9 8 12 9 9 13 9 10 9 15 12 13 12 NA NA 0.0000 16 0.7000 0.6222
Heather Kohler 12 NA 7 12 9 11 NA 12 NA 8 9 10 14 NA NA NA NA NA 0.0000 10 0.6980 0.3878
Jeremy Krammes 12 NA NA NA NA NA NA 10 NA 10 NA NA NA NA NA NA NA NA 0.0000 3 0.6957 0.1159
Terrence Lee 11 NA NA NA NA NA NA NA NA NA NA 9 NA NA NA NA NA NA 0.0000 2 0.6897 0.0766
Daniel Gray 11 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.0000 1 0.6875 0.0382
Karen Coleman 13 6 NA 11 9 9 10 9 11 8 9 9 14 10 14 11 NA NA 0.0000 15 0.6830 0.5692
Bryson Scott 10 9 7 NA 7 12 11 12 10 9 NA 9 15 10 10 NA 12 NA 0.0000 14 0.6810 0.5297
Ryan Wiggins NA NA NA NA NA NA NA NA 11 NA NA NA NA NA NA 10 NA NA 0.0000 2 0.6774 0.0753
Matthew Schultz 13 10 9 8 9 9 9 12 11 8 11 10 14 9 11 9 11 NA 0.0000 17 0.6758 0.6383
Scott Lefton 10 8 8 7 7 11 11 10 11 10 10 8 15 10 14 11 NA NA 0.0000 16 0.6708 0.5963
Robert Sokol 10 8 NA NA 6 9 9 13 12 9 10 8 14 10 NA NA NA NA 0.0000 12 0.6705 0.4470
Noah Gosswiller 8 7 NA 10 8 NA 10 11 10 10 10 8 NA 9 14 14 NA NA 0.0000 13 0.6649 0.4802
Earl Dixon 10 9 6 9 9 NA 11 10 9 9 10 10 15 11 10 12 NA NA 0.0000 15 0.6637 0.5531
Travis Delagardelle 11 12 10 8 6 11 12 11 11 9 9 NA NA NA NA NA NA NA 0.0000 11 0.6627 0.4050
Clevante Granville 9 11 NA NA 5 11 11 9 10 11 9 10 NA 8 13 9 11 NA 0.0000 14 0.6587 0.5123
Ryan Baum 14 4 9 10 9 NA 10 10 11 10 NA 8 14 8 NA 12 NA NA 0.0000 13 0.6582 0.4754
Nicholas Nguyen 11 8 5 8 7 12 11 9 10 9 10 9 NA 9 16 11 12 NA 0.0000 16 0.6542 0.5815
Jennifer Arty 10 7 9 7 7 12 8 12 11 9 10 8 15 9 13 10 NA NA 0.0000 16 0.6542 0.5815
Michelle Fraterrigo 11 8 9 9 7 11 12 12 11 8 8 10 NA 9 NA 11 NA NA 0.0000 14 0.6538 0.5085
Michael Branson 9 8 8 9 8 11 9 11 10 9 11 7 14 9 13 10 11 NA 0.0000 17 0.6523 0.6161
George Hall 12 NA 8 NA NA NA NA NA NA 10 NA NA NA NA NA NA NA NA 0.0000 3 0.6522 0.1087
Daniel Major 8 10 11 6 8 11 NA 10 10 10 11 9 14 11 9 NA 8 NA 0.0000 15 0.6489 0.5408
Brandon Parks 12 6 9 9 6 13 NA NA 12 10 10 6 NA 8 12 9 13 NA 0.0000 14 0.6459 0.5024
Bunnaro Sun 12 5 8 11 6 8 9 9 12 8 8 NA 14 NA 12 13 13 NA 0.0000 15 0.6435 0.5362
Joshua Tracey 12 5 8 6 7 NA 9 13 10 7 10 9 16 9 13 11 NA NA 0.0000 15 0.6416 0.5347
Paul Presti 12 8 9 12 7 11 8 10 NA 10 9 NA NA NA NA NA NA NA 0.0000 10 0.6358 0.3532
Ronald Schmidt 10 10 5 9 6 8 12 10 NA 7 9 10 NA 8 13 11 15 NA 0.0000 15 0.6356 0.5297
Amy Asberry 11 8 6 10 NA 12 9 NA 9 8 NA NA 13 9 11 NA NA NA 0.0000 11 0.6347 0.3879
Tara Bridgett 11 8 8 8 NA 9 NA 10 10 NA NA NA 15 NA NA NA NA NA 0.0000 8 0.6320 0.2809
Yiming Hu 12 NA 7 7 6 8 12 9 NA 9 12 8 11 NA 12 NA NA NA 0.0000 12 0.6278 0.4185
Jordan Forwood 11 8 6 11 NA 13 NA 10 NA NA NA NA NA NA NA NA NA NA 0.0000 6 0.6277 0.2092
Kenneth Nielsen 13 8 7 NA 8 9 11 10 NA NA NA NA 11 NA NA 8 12 NA 0.0000 10 0.6258 0.3477
Matthew Olguin 10 8 9 9 7 12 11 11 9 7 8 5 14 9 12 12 7 NA 0.0000 17 0.6250 0.5903
Desmond Jenkins 10 7 7 NA 7 12 8 NA NA NA NA NA 15 NA NA NA NA NA 0.0000 7 0.6168 0.2399
Jose Torres Mendoza 12 8 8 8 NA NA 8 9 10 11 8 7 NA 10 NA 11 NA NA 0.0000 12 0.6111 0.4074
David Hadley 13 10 8 NA 8 NA 8 NA NA NA NA NA NA NA NA NA NA NA 0.0000 5 0.6104 0.1696
Robert Martin 7 NA 9 8 8 8 7 NA 8 7 7 9 11 8 11 13 15 NA 0.0000 15 0.6071 0.5059
Kyle May 10 8 5 6 8 NA 12 10 9 8 8 8 13 7 13 12 NA NA 0.0000 15 0.6062 0.5052
Wayne Gokey 13 7 NA 11 NA NA 8 NA 8 NA NA NA NA NA NA NA NA NA 0.0000 5 0.6026 0.1674
Jonathan Knight 13 10 9 6 7 NA 11 NA NA NA NA NA NA NA NA NA NA NA 0.0000 6 0.6022 0.2007
Megan Fitzgerald 8 11 9 10 NA NA 8 10 NA NA NA 7 13 4 12 NA NA NA 0.0000 10 0.6013 0.3341
Kevin Green 11 9 NA 8 7 12 NA 8 NA NA NA NA NA NA NA NA NA NA 0.0000 6 0.5978 0.1993
Derrick Elam 13 9 8 11 7 10 8 9 NA NA NA 7 NA 7 NA NA NA NA 0.0000 10 0.5973 0.3318
Jeffrey Dusza 11 8 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.0000 2 0.5938 0.0660
Cherylynn Vidal 13 9 8 8 NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.0000 4 0.5938 0.1320
Adam Konkle 10 9 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.0000 2 0.5938 0.0660
Thomas Cho 10 6 NA 11 7 12 NA 8 9 NA NA NA NA NA NA NA NA NA 0.0000 7 0.5888 0.2290
Steven Webster 7 7 9 6 7 9 NA 11 NA 8 10 8 NA 8 12 12 NA NA 0.0000 13 0.5876 0.4244
Jason Miranda 10 7 8 NA 9 11 8 NA NA NA NA NA NA NA NA NA NA NA 0.0000 6 0.5824 0.1941
Jennifer Wilson 11 9 10 6 NA 7 11 NA NA NA NA NA NA NA NA NA NA NA 0.0000 6 0.5806 0.1935
Joseph Martin 10 7 8 8 8 10 9 NA NA NA NA NA NA NA NA NA NA NA 0.0000 7 0.5607 0.2180
Min Choi 10 NA 7 NA 8 7 NA 10 NA NA NA NA NA NA NA NA NA NA 0.0000 5 0.5526 0.1535
Lawrence Thuotte 9 5 12 NA 8 NA NA NA NA NA NA NA NA NA NA NA NA NA 0.0000 4 0.5484 0.1219
Donald Park 9 NA 6 NA NA 10 NA NA NA NA NA NA NA NA NA NA NA NA 0.0000 3 0.5435 0.0906
Gabriel Quinones 10 7 6 9 NA 11 8 7 NA NA NA 6 NA 9 NA NA NA NA 0.0000 9 0.5407 0.2704
Monte Henderson 9 8 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.0000 2 0.5312 0.0590
David Kim 9 8 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.0000 2 0.5312 0.0590
Jamie Ainsleigh-Wong 9 8 9 9 8 5 NA NA NA NA NA NA NA NA NA NA NA NA 0.0000 6 0.5217 0.1739
Akilah Gamble 9 NA 12 9 6 8 12 6 NA 8 NA 7 NA NA 3 6 NA NA 0.0000 11 0.5181 0.3166
Jay Kelly 10 9 7 7 5 10 7 NA NA NA NA NA NA NA NA NA NA NA 0.0000 7 0.5140 0.1999
Zachary Brosemer 8 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.0000 1 0.5000 0.0278
Antonio Chapa 8 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.0000 1 0.5000 0.0278
Vincent Kandian 9 8 8 7 NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.0000 4 0.5000 0.1111
Ashley Johnson 9 NA 6 NA 6 NA NA NA NA NA 5 9 8 NA NA NA NA NA 0.0000 6 0.4831 0.1610
Ashlyn Dortch 9 NA NA 8 NA 5 9 6 NA NA NA NA NA NA NA NA NA NA 0.0000 5 0.4805 0.1335
Gabrieal Feiling 10 NA 5 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.0000 2 0.4688 0.0521
Jasprin Smith 6 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.0000 1 0.3750 0.0208
Robert Epps NA 6 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.0000 1 0.3750 0.0208

Season Leaderboard

Season Leaderboard (Season Percent)
Week 18
Season Rank Name Donuts Won Weeks Picked Season Percent Adj Season Percent Season Trend
1 Clayton Grimes 0 1 0.8750 0.0486
2 Tanaysa Henderson 0 1 0.8571 0.0476
3 Brittany Pillar 1 11 0.7669 0.4687
4 Matthew Blair 0 11 0.7531 0.4602
5 Brian Holder 0 1 0.7500 0.0417
5 Sandra Carter 0 1 0.7500 0.0417
5 Wallace Savage 0 1 0.7500 0.0417
8 Robert Cunningham 1 17 0.7422 0.7010
9 Aubrey Conn 4 18 0.7353 0.7353
10 Michael Linder 0 12 0.7312 0.4875
11 Michael Pacifico 2 18 0.7279 0.7279
12 Robert Gelo 1 18 0.7243 0.7243
13 Steven Maisonneuve 1 9 0.7231 0.3616
14 Chester Todd 1 17 0.7188 0.6789
15 Nathan Brown 1 15 0.7168 0.5973
16 Chris Papageorge 2 18 0.7096 0.7096
17 Marc Agne 2 18 0.7059 0.7059
18 Bradley Hobson 1 17 0.7054 0.6662
18 Patrick Tynan 2 16 0.7054 0.6270
20 Randolph Tidd 1 16 0.7025 0.6244
21 Randy Dick 1 18 0.7022 0.7022
22 Gregory Brown 2 16 0.7000 0.6222
22 Jeremy Mounce 0 8 0.7000 0.3111
24 Heather Kohler 0 10 0.6980 0.3878
25 Erik Neumann 1 15 0.6960 0.5800
26 Jeremy Krammes 0 3 0.6957 0.1159
27 Anthony Bloss 0 18 0.6949 0.6949
27 Christopher Sims 2 18 0.6949 0.6949
27 Jeremy Stieler 1 18 0.6949 0.6949
30 William Schouviller 1 17 0.6926 0.6541
31 Jason Schattel 1 18 0.6912 0.6912
32 David Dupree 0 17 0.6899 0.6516
33 Terrence Lee 0 2 0.6897 0.0766
34 Bruce Williams 0 17 0.6887 0.6504
35 Daniel Gray 0 1 0.6875 0.0382
35 Keven Talbert 2 17 0.6875 0.6493
35 Nicole Dike 1 18 0.6875 0.6875
38 Kevin Kehoe 0 18 0.6838 0.6838
39 Heather Ellenberger 0 17 0.6836 0.6456
40 Nicholas Cinco 0 16 0.6833 0.6074
40 Thomas Brenstuhl 1 16 0.6833 0.6074
42 Karen Coleman 0 15 0.6830 0.5692
43 Bryson Scott 0 14 0.6810 0.5297
44 Edward Ford 0 18 0.6801 0.6801
45 Jennifer Bouland 0 16 0.6792 0.6037
46 Ryan Wiggins 0 2 0.6774 0.0753
47 Daniel Baller 0 18 0.6765 0.6765
47 Pablo Burgosramos 1 18 0.6765 0.6765
47 Stephen Bush 2 18 0.6765 0.6765
50 Kevin Buettner 1 17 0.6758 0.6383
50 Matthew Schultz 0 17 0.6758 0.6383
52 Brian Hollmann 1 14 0.6731 0.5235
53 George Sweet 2 18 0.6728 0.6728
53 Ramar Williams 1 18 0.6728 0.6728
55 Shawn Carden 0 17 0.6719 0.6346
56 Rafael Torres 0 16 0.6708 0.5963
56 Scott Lefton 0 16 0.6708 0.5963
58 Robert Sokol 0 12 0.6705 0.4470
59 Philip Driskill 1 12 0.6703 0.4469
60 Brayant Rivera 0 18 0.6691 0.6691
60 Ryan Cvik 0 18 0.6691 0.6691
62 Darryle Sellers 0 16 0.6667 0.5926
63 Antonio Mitchell 1 18 0.6654 0.6654
64 Zechariah Ziebarth 1 16 0.6653 0.5914
65 Noah Gosswiller 1 13 0.6649 0.4802
66 Earl Dixon 0 15 0.6637 0.5531
67 David Plate 0 14 0.6636 0.5161
68 George Mancini 0 14 0.6635 0.5161
69 Travis Delagardelle 1 11 0.6627 0.4050
70 Pamela Augustine 0 14 0.6619 0.5148
71 Michael Moss 0 18 0.6618 0.6618
71 Richard Beeghley 1 18 0.6618 0.6618
73 Daniel Halse 0 16 0.6612 0.5877
74 Darvin Graham 0 15 0.6607 0.5506
75 Jonathon Leslein 1 17 0.6602 0.6235
75 Shaun Dahl 1 17 0.6602 0.6235
77 Clevante Granville 0 14 0.6587 0.5123
78 Ryan Baum 0 13 0.6582 0.4754
79 Cade Martinez 0 18 0.6581 0.6581
80 Karen Richardson 1 17 0.6562 0.6197
81 Paul Seitz 0 14 0.6555 0.5098
82 Steward Hogans 1 13 0.6548 0.4729
83 Montee Brown 1 18 0.6544 0.6544
84 Jennifer Arty 0 16 0.6542 0.5815
84 Nicholas Nguyen 1 16 0.6542 0.5815
86 Michelle Fraterrigo 0 14 0.6538 0.5085
87 Jason Jackson 0 17 0.6523 0.6161
87 Jeffrey Rudderforth 0 17 0.6523 0.6161
87 Michael Branson 0 17 0.6523 0.6161
90 George Hall 0 3 0.6522 0.1087
91 Michael Moore 1 15 0.6520 0.5433
92 David Humes 0 18 0.6507 0.6507
92 George Brown 1 18 0.6507 0.6507
94 Daniel Major 0 15 0.6489 0.5408
95 Kamar Morgan 1 17 0.6484 0.6124
96 Jeffrey Zornes 0 17 0.6473 0.6113
97 Anthony Brinson 0 14 0.6462 0.5026
98 Brian Patterson 0 16 0.6461 0.5743
99 Brandon Parks 0 14 0.6459 0.5024
100 Vincent Scannelli 0 17 0.6448 0.6090
101 James Small 0 16 0.6446 0.5730
102 Nahir Shepard 0 17 0.6445 0.6087
103 Bunnaro Sun 0 15 0.6435 0.5362
104 Christopher Mulcahy 0 17 0.6434 0.6077
104 Trevor Macgavin 1 18 0.6434 0.6434
104 Walter Archambo 0 18 0.6434 0.6434
107 Cheryl Brown 0 16 0.6432 0.5717
108 Joshua Tracey 1 15 0.6416 0.5347
109 Jonathan Smith 0 16 0.6405 0.5693
110 Louie Renew 1 17 0.6367 0.6013
111 Rachel Follo 1 18 0.6360 0.6360
111 Thomas Mccoy 0 18 0.6360 0.6360
113 Paul Presti 0 10 0.6358 0.3532
114 Ronald Schmidt 1 15 0.6356 0.5297
115 Amy Asberry 0 11 0.6347 0.3879
116 Jared Kaanga 0 16 0.6333 0.5629
117 Tara Bridgett 0 8 0.6320 0.2809
118 Wayne Schofield 1 17 0.6289 0.5940
119 Yiming Hu 0 12 0.6278 0.4185
120 Jordan Forwood 0 6 0.6277 0.2092
121 Kenneth Nielsen 0 10 0.6258 0.3477
122 Kristen White 0 18 0.6250 0.6250
122 Matthew Olguin 0 17 0.6250 0.5903
124 Diance Durand 1 17 0.6216 0.5871
125 Terry Hardison 0 16 0.6214 0.5524
126 Melissa Printup 0 18 0.6213 0.6213
127 Anthony Rockemore 0 14 0.6209 0.4829
128 Marcus Evans 0 17 0.6172 0.5829
129 Desmond Jenkins 0 7 0.6168 0.2399
130 Robert Lynch 0 16 0.6148 0.5465
131 Jose Torres Mendoza 0 12 0.6111 0.4074
132 David Hadley 0 5 0.6104 0.1696
133 Gary Lawrence 1 18 0.6103 0.6103
134 Keisha Vasquez 1 13 0.6100 0.4406
135 Jack Wheeler 0 16 0.6074 0.5399
136 Robert Martin 1 15 0.6071 0.5059
137 Kyle May 0 15 0.6062 0.5052
138 Wayne Gokey 0 5 0.6026 0.1674
139 Jonathan Knight 0 6 0.6022 0.2007
140 Megan Fitzgerald 0 10 0.6013 0.3341
141 Kevin Green 0 6 0.5978 0.1993
142 Derrick Elam 0 10 0.5973 0.3318
143 Ryan Shipley 0 13 0.5939 0.4289
144 Adam Konkle 0 2 0.5938 0.0660
144 Cherylynn Vidal 0 4 0.5938 0.1320
144 Jeffrey Dusza 0 2 0.5938 0.0660
147 Thomas Cho 0 7 0.5888 0.2290
148 Steven Webster 0 13 0.5876 0.4244
149 Jason Miranda 0 6 0.5824 0.1941
150 Jennifer Wilson 0 6 0.5806 0.1935
151 Richard Conkle 0 14 0.5775 0.4492
152 Sheryl Claiborne-Smith 0 12 0.5674 0.3783
153 Joseph Martin 0 7 0.5607 0.2180
154 Min Choi 0 5 0.5526 0.1535
155 Lawrence Thuotte 1 4 0.5484 0.1219
156 Donald Park 0 3 0.5435 0.0906
157 Gabriel Quinones 0 9 0.5407 0.2704
158 David Kim 0 2 0.5312 0.0590
158 Monte Henderson 0 2 0.5312 0.0590
160 Jamie Ainsleigh-Wong 0 6 0.5217 0.1739
161 Akilah Gamble 1 11 0.5181 0.3166
162 Andrew Gray 0 15 0.5175 0.4312
163 Jay Kelly 0 7 0.5140 0.1999
164 Antonio Chapa 0 1 0.5000 0.0278
164 Vincent Kandian 0 4 0.5000 0.1111
164 Zachary Brosemer 0 1 0.5000 0.0278
167 Ashley Johnson 0 6 0.4831 0.1610
168 Ashlyn Dortch 0 5 0.4805 0.1335
169 Gabrieal Feiling 0 2 0.4688 0.0521
170 Jasprin Smith 0 1 0.3750 0.0208
170 Robert Epps 0 1 0.3750 0.0208

Adjusted Season Leaderboard

Season Leaderboard (Adjusted Season Percent)
Week 18
Season Rank Name Donuts Won Weeks Picked Season Percent Adj Season Percent Season Trend
1 Aubrey Conn 4 18 0.7353 0.7353
2 Michael Pacifico 2 18 0.7279 0.7279
3 Robert Gelo 1 18 0.7243 0.7243
4 Chris Papageorge 2 18 0.7096 0.7096
5 Marc Agne 2 18 0.7059 0.7059
6 Randy Dick 1 18 0.7022 0.7022
7 Robert Cunningham 1 17 0.7422 0.7010
8 Anthony Bloss 0 18 0.6949 0.6949
8 Christopher Sims 2 18 0.6949 0.6949
8 Jeremy Stieler 1 18 0.6949 0.6949
11 Jason Schattel 1 18 0.6912 0.6912
12 Nicole Dike 1 18 0.6875 0.6875
13 Kevin Kehoe 0 18 0.6838 0.6838
14 Edward Ford 0 18 0.6801 0.6801
15 Chester Todd 1 17 0.7188 0.6789
16 Daniel Baller 0 18 0.6765 0.6765
16 Pablo Burgosramos 1 18 0.6765 0.6765
16 Stephen Bush 2 18 0.6765 0.6765
19 George Sweet 2 18 0.6728 0.6728
19 Ramar Williams 1 18 0.6728 0.6728
21 Brayant Rivera 0 18 0.6691 0.6691
21 Ryan Cvik 0 18 0.6691 0.6691
23 Bradley Hobson 1 17 0.7054 0.6662
24 Antonio Mitchell 1 18 0.6654 0.6654
25 Michael Moss 0 18 0.6618 0.6618
25 Richard Beeghley 1 18 0.6618 0.6618
27 Cade Martinez 0 18 0.6581 0.6581
28 Montee Brown 1 18 0.6544 0.6544
29 William Schouviller 1 17 0.6926 0.6541
30 David Dupree 0 17 0.6899 0.6516
31 David Humes 0 18 0.6507 0.6507
31 George Brown 1 18 0.6507 0.6507
33 Bruce Williams 0 17 0.6887 0.6504
34 Keven Talbert 2 17 0.6875 0.6493
35 Heather Ellenberger 0 17 0.6836 0.6456
36 Trevor Macgavin 1 18 0.6434 0.6434
36 Walter Archambo 0 18 0.6434 0.6434
38 Kevin Buettner 1 17 0.6758 0.6383
38 Matthew Schultz 0 17 0.6758 0.6383
40 Rachel Follo 1 18 0.6360 0.6360
40 Thomas Mccoy 0 18 0.6360 0.6360
42 Shawn Carden 0 17 0.6719 0.6346
43 Patrick Tynan 2 16 0.7054 0.6270
44 Kristen White 0 18 0.6250 0.6250
45 Randolph Tidd 1 16 0.7025 0.6244
46 Jonathon Leslein 1 17 0.6602 0.6235
46 Shaun Dahl 1 17 0.6602 0.6235
48 Gregory Brown 2 16 0.7000 0.6222
49 Melissa Printup 0 18 0.6213 0.6213
50 Karen Richardson 1 17 0.6562 0.6197
51 Jason Jackson 0 17 0.6523 0.6161
51 Jeffrey Rudderforth 0 17 0.6523 0.6161
51 Michael Branson 0 17 0.6523 0.6161
54 Kamar Morgan 1 17 0.6484 0.6124
55 Jeffrey Zornes 0 17 0.6473 0.6113
56 Gary Lawrence 1 18 0.6103 0.6103
57 Vincent Scannelli 0 17 0.6448 0.6090
58 Nahir Shepard 0 17 0.6445 0.6087
59 Christopher Mulcahy 0 17 0.6434 0.6077
60 Nicholas Cinco 0 16 0.6833 0.6074
60 Thomas Brenstuhl 1 16 0.6833 0.6074
62 Jennifer Bouland 0 16 0.6792 0.6037
63 Louie Renew 1 17 0.6367 0.6013
64 Nathan Brown 1 15 0.7168 0.5973
65 Rafael Torres 0 16 0.6708 0.5963
65 Scott Lefton 0 16 0.6708 0.5963
67 Wayne Schofield 1 17 0.6289 0.5940
68 Darryle Sellers 0 16 0.6667 0.5926
69 Zechariah Ziebarth 1 16 0.6653 0.5914
70 Matthew Olguin 0 17 0.6250 0.5903
71 Daniel Halse 0 16 0.6612 0.5877
72 Diance Durand 1 17 0.6216 0.5871
73 Marcus Evans 0 17 0.6172 0.5829
74 Jennifer Arty 0 16 0.6542 0.5815
74 Nicholas Nguyen 1 16 0.6542 0.5815
76 Erik Neumann 1 15 0.6960 0.5800
77 Brian Patterson 0 16 0.6461 0.5743
78 James Small 0 16 0.6446 0.5730
79 Cheryl Brown 0 16 0.6432 0.5717
80 Jonathan Smith 0 16 0.6405 0.5693
81 Karen Coleman 0 15 0.6830 0.5692
82 Jared Kaanga 0 16 0.6333 0.5629
83 Earl Dixon 0 15 0.6637 0.5531
84 Terry Hardison 0 16 0.6214 0.5524
85 Darvin Graham 0 15 0.6607 0.5506
86 Robert Lynch 0 16 0.6148 0.5465
87 Michael Moore 1 15 0.6520 0.5433
88 Daniel Major 0 15 0.6489 0.5408
89 Jack Wheeler 0 16 0.6074 0.5399
90 Bunnaro Sun 0 15 0.6435 0.5362
91 Joshua Tracey 1 15 0.6416 0.5347
92 Bryson Scott 0 14 0.6810 0.5297
92 Ronald Schmidt 1 15 0.6356 0.5297
94 Brian Hollmann 1 14 0.6731 0.5235
95 David Plate 0 14 0.6636 0.5161
95 George Mancini 0 14 0.6635 0.5161
97 Pamela Augustine 0 14 0.6619 0.5148
98 Clevante Granville 0 14 0.6587 0.5123
99 Paul Seitz 0 14 0.6555 0.5098
100 Michelle Fraterrigo 0 14 0.6538 0.5085
101 Robert Martin 1 15 0.6071 0.5059
102 Kyle May 0 15 0.6062 0.5052
103 Anthony Brinson 0 14 0.6462 0.5026
104 Brandon Parks 0 14 0.6459 0.5024
105 Michael Linder 0 12 0.7312 0.4875
106 Anthony Rockemore 0 14 0.6209 0.4829
107 Noah Gosswiller 1 13 0.6649 0.4802
108 Ryan Baum 0 13 0.6582 0.4754
109 Steward Hogans 1 13 0.6548 0.4729
110 Brittany Pillar 1 11 0.7669 0.4687
111 Matthew Blair 0 11 0.7531 0.4602
112 Richard Conkle 0 14 0.5775 0.4492
113 Robert Sokol 0 12 0.6705 0.4470
114 Philip Driskill 1 12 0.6703 0.4469
115 Keisha Vasquez 1 13 0.6100 0.4406
116 Andrew Gray 0 15 0.5175 0.4312
117 Ryan Shipley 0 13 0.5939 0.4289
118 Steven Webster 0 13 0.5876 0.4244
119 Yiming Hu 0 12 0.6278 0.4185
120 Jose Torres Mendoza 0 12 0.6111 0.4074
121 Travis Delagardelle 1 11 0.6627 0.4050
122 Amy Asberry 0 11 0.6347 0.3879
123 Heather Kohler 0 10 0.6980 0.3878
124 Sheryl Claiborne-Smith 0 12 0.5674 0.3783
125 Steven Maisonneuve 1 9 0.7231 0.3616
126 Paul Presti 0 10 0.6358 0.3532
127 Kenneth Nielsen 0 10 0.6258 0.3477
128 Megan Fitzgerald 0 10 0.6013 0.3341
129 Derrick Elam 0 10 0.5973 0.3318
130 Akilah Gamble 1 11 0.5181 0.3166
131 Jeremy Mounce 0 8 0.7000 0.3111
132 Tara Bridgett 0 8 0.6320 0.2809
133 Gabriel Quinones 0 9 0.5407 0.2704
134 Desmond Jenkins 0 7 0.6168 0.2399
135 Thomas Cho 0 7 0.5888 0.2290
136 Joseph Martin 0 7 0.5607 0.2180
137 Jordan Forwood 0 6 0.6277 0.2092
138 Jonathan Knight 0 6 0.6022 0.2007
139 Jay Kelly 0 7 0.5140 0.1999
140 Kevin Green 0 6 0.5978 0.1993
141 Jason Miranda 0 6 0.5824 0.1941
142 Jennifer Wilson 0 6 0.5806 0.1935
143 Jamie Ainsleigh-Wong 0 6 0.5217 0.1739
144 David Hadley 0 5 0.6104 0.1696
145 Wayne Gokey 0 5 0.6026 0.1674
146 Ashley Johnson 0 6 0.4831 0.1610
147 Min Choi 0 5 0.5526 0.1535
148 Ashlyn Dortch 0 5 0.4805 0.1335
149 Cherylynn Vidal 0 4 0.5938 0.1320
150 Lawrence Thuotte 1 4 0.5484 0.1219
151 Jeremy Krammes 0 3 0.6957 0.1159
152 Vincent Kandian 0 4 0.5000 0.1111
153 George Hall 0 3 0.6522 0.1087
154 Donald Park 0 3 0.5435 0.0906
155 Terrence Lee 0 2 0.6897 0.0766
156 Ryan Wiggins 0 2 0.6774 0.0753
157 Adam Konkle 0 2 0.5938 0.0660
157 Jeffrey Dusza 0 2 0.5938 0.0660
159 David Kim 0 2 0.5312 0.0590
159 Monte Henderson 0 2 0.5312 0.0590
161 Gabrieal Feiling 0 2 0.4688 0.0521
162 Clayton Grimes 0 1 0.8750 0.0486
163 Tanaysa Henderson 0 1 0.8571 0.0476
164 Brian Holder 0 1 0.7500 0.0417
164 Sandra Carter 0 1 0.7500 0.0417
164 Wallace Savage 0 1 0.7500 0.0417
167 Daniel Gray 0 1 0.6875 0.0382
168 Antonio Chapa 0 1 0.5000 0.0278
168 Zachary Brosemer 0 1 0.5000 0.0278
170 Jasprin Smith 0 1 0.3750 0.0208
170 Robert Epps 0 1 0.3750 0.0208

Data

---
title: "2024 NFL Moneyline Picks"
output: 
  flexdashboard::flex_dashboard:
    theme:
      version: 4
      bootswatch: spacelab
    orientation: rows
    vertical_layout: fill
    social: ["menu"]
    source_code: embed
    navbar:
      - { title: "Created by: Daniel Baller", icon: "fa-github", href: "https://github.com/danielpballer"  }
---


```{r setup, include=FALSE}
#    source_code: embed
library(flexdashboard)
library(tidyverse)
library(data.table)
library(formattable)
library(ggpubr)
library(ggrepel)
library(gt)
library(glue)
library(ggthemes)
library(hrbrthemes)
library(sparkline)
library(plotly)
library(htmlwidgets)
library(mdthemes)
library(ggtext)
library(ggnewscale)
library(DT)
source("./Functions/functions2.R")

thematic::thematic_rmd(font = "auto")

```

```{r Reading in our picks files, include=FALSE}
current_week = 18 #Set what week it is
week_1 = read_csv("./CSV_Data_Files/2024 NFL Week 1.csv") %>% 
  mutate(Name = str_to_title(Name))
week_2 = read_csv("./CSV_Data_Files/2024 NFL Week 2.csv")%>% 
  mutate(Name = str_to_title(Name))
week_3 = read_csv("./CSV_Data_Files/2024 NFL Week 3.csv")%>% 
  mutate(Name = str_to_title(Name))
week_4 = read_csv("./CSV_Data_Files/2024 NFL Week 4.csv")%>%
 mutate(Name = str_to_title(Name))
week_5 = read_csv("./CSV_Data_Files/2024 NFL Week 5.csv")%>% 
  mutate(Name = str_to_title(Name))
week_6 = read_csv("./CSV_Data_Files/2024 NFL Week 6.csv")%>% 
  mutate(Name = str_to_title(Name))
week_7 = read_csv("./CSV_Data_Files/2024 NFL Week 7.csv")%>% 
  mutate(Name = str_to_title(Name))
week_8 = read_csv("./CSV_Data_Files/2024 NFL Week 8.csv")%>% 
  mutate(Name = str_to_title(Name))
 week_9 = read_csv("./CSV_Data_Files/2024 NFL Week 9.csv")%>% 
  mutate(Name = str_to_title(Name))
week_10 = read_csv("./CSV_Data_Files/2024 NFL Week 10.csv")%>% 
  mutate(Name = str_to_title(Name))
week_11 = read_csv("./CSV_Data_Files/2024 NFL Week 11.csv")%>% 
  mutate(Name = str_to_title(Name))
week_12 = read_csv("./CSV_Data_Files/2024 NFL Week 12.csv")%>% 
  mutate(Name = str_to_title(Name))
week_13 = read_csv("./CSV_Data_Files/2024 NFL Week 13.csv")%>% 
  mutate(Name = str_to_title(Name))
week_14 = read_csv("./CSV_Data_Files/2024 NFL Week 14.csv")%>% 
  mutate(Name = str_to_title(Name))
week_15 = read_csv("./CSV_Data_Files/2024 NFL Week 15.csv")%>% 
  mutate(Name = str_to_title(Name))
week_16 = read_csv("./CSV_Data_Files/2024 NFL Week 16.csv")%>% 
  mutate(Name = str_to_title(Name))
week_17 = read_csv("./CSV_Data_Files/2024 NFL Week 17.csv")%>% 
  mutate(Name = str_to_title(Name))
week_18 = read_csv("./CSV_Data_Files/2024 NFL Week 18.csv")%>% 
  mutate(Name = str_to_title(Name))
# week_19 = read_csv("./CSV_Data_Files/2024 NFL Wild Card.csv")%>% 
#  mutate(Name = str_to_title(Name))
# week_20 = read_csv("./CSV_Data_Files/2024 NFL Divisional Round.csv")%>% 
#  mutate(Name = str_to_title(Name))
# week_21 = read_csv("./CSV_Data_Files/2024 NFL Conference Round.csv")%>% 
#  mutate(Name = str_to_title(Name))
# week_22 = read_csv("./CSV_Data_Files/2024 NFL Super Bowl.csv")%>% 
#  mutate(Name = str_to_title(Name))

#reading in scores
Scores = read_csv(glue::glue("./CSV_Data_Files/NFL_Scores_{current_week}.csv")) 

#reading in CBS Prediction Records
cbs = read_csv(glue::glue("./CSV_Data_Files/CBS_Experts_{current_week}.csv")) %>% 
  mutate(Percent = round(Percent,4))
cbs_season = read_csv(glue::glue("./CSV_Data_Files/CBS_Experts_Season_{current_week}.csv"))

#reading in ESPN Prediction Records
espn = read_csv(glue::glue("./CSV_Data_Files/ESPN_Experts_{current_week}.csv"))%>% 
  mutate(Percent = round(Percent,4))
espn_season = read_csv(glue::glue("./CSV_Data_Files/ESPN_Experts_Season_{current_week}.csv"))%>% 
  mutate(Percent = round(Percent,4))

#Odds not working for the 2024 season.  Need to fix scrape code for next year.
#Reading in the moneyline odds for each team and cleaning the team names
# odds_wk1 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_1.csv"))
# odds_wk2 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_2.csv"))
# odds_wk3 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_3.csv"))
# odds_wk4 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_4.csv"))
# odds_wk5 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_5.csv"))
# odds_wk6 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_6.csv"))
# odds_wk7 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_7.csv"))
# odds_wk8 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_8.csv"))
# odds_wk9 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_9.csv"))
# odds_wk10 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_10.csv"))
# odds_wk11 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_11.csv"))
# odds_wk12 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_12.csv"))
# odds_wk13 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_13.csv"))
# odds_wk14 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_14.csv"))
# odds_wk15 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_15.csv"))
# odds_wk16 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_16.csv"))
# odds_wk17 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_17.csv"))
# odds_wk18 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_18.csv"))
# odds_wk19 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_19.csv"))
# odds_wk20 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_20.csv"))
# odds_wk21 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_21.csv"))
# odds_wk22 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_22.csv"))

####################UPDATE THESE###############################
inst.picks = list(week_1, week_2, week_3, week_4, week_5, week_6, week_7, week_8 , week_9, week_10, week_11, week_12, week_13, week_14, week_15, week_16, week_17, week_18) #, week_19 , week_20, week_21, week_22) #add in the additional weeks
# odds = rbind(odds_wk1, odds_wk2, odds_wk3, odds_wk4, odds_wk5, odds_wk6, odds_wk7, odds_wk8,
#              odds_wk9, odds_wk10, odds_wk11, odds_wk12) #add in the additional weeks
####################END OF UPDATE##############################

weeks = as.list(seq(1:current_week)) #creating a list of each week number
```

```{r read in scores clean data, include=FALSE}
#Cleaning Odds Data
# cl_odds = odds_cleaning(odds)

#Cleaning scores data
Scores = cleaning2(Scores)

#creating a list of winners for each week
winners = map(weeks, weekly_winners)

#creating a vector of this weeks winners
this_week = pull(winners[[length(winners)]])  

#Getting the number of games for each week
weekly_number_of_games = map_dbl(weeks, week_number_games)
```

```{r Group Predictions, include=FALSE}
#Creating the list of everyones predictions each week.
games = map(inst.picks, games_fn)

#Creating the prediction table.  
pred_table = map(games, pred_table_fn)

#Adding who won to the predictions
with_winners = map2(pred_table, winners, adding_winners)

#Creating results for each week.
results = map2(with_winners,weekly_number_of_games, results_fn)
```


```{r Displaying Group Results, echo=FALSE}
#Displaying the group results

inst_group_table = results[[length(results)]] %>% gt() %>% 
  cols_align(
    align = "center") %>% 
   tab_header(
    title = md("This Week's Predictions"),
    #subtitle = md(glue("Week {length(results)}"))
    ) %>% 
   tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(Correct),
      rows = Correct =="No"
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(Correct),
      rows = Correct =="Yes"
    )) %>% 
  tab_options(
    data_row.padding = px(3),
    container.height = "100%"
   )
```

```{r Weekly and season Group Results, include=FALSE}
# Printing the weekly and season win percentage     

#how many games correct, incorrect, and not picked each week
weekly_group_correct = map(results, weekly_group_correct_fn)  

#how many games were picked each week
weekly_games_picked = map2(weekly_group_correct, weekly_number_of_games, weekly_games_picked_fn)

#Calculating the number of correct picks for each week
weekly_group_correct_picks = map(weekly_group_correct, weekly_group_correct_picks_fn)

# Code to manually hard code in week where we get 0 games correct
# ##### Remove this line before next season 
# weekly_group_correct_picks[[21]]=0

#Calculating weekly win percentage
weekly_win_percentage = map2(weekly_group_correct_picks, weekly_games_picked, weekly_win_percentage_fn)

#Calculating season win percentage
season_win_percentage = round(sum(unlist(weekly_group_correct_picks))/sum(unlist(weekly_games_picked)),4)

#Calculating number of games picked this season
season_games = sum(unlist(weekly_games_picked))

#calculating season wins
season_wins = sum(unlist(weekly_group_correct_picks))

#calculating the number of people who picked this week
Total = dim(inst.picks[[length(weeks)]])[1]
```

```{r plotting group results, include=FALSE}
#Previous Weeks
group_season_for_plotting = unlist(weekly_win_percentage) %>% as.data.frame() %>% 
  rename(`Win Percentage` = ".") %>% 
  add_column(Week = unlist(weeks))
```

```{r Plotting the group results, echo=FALSE}
inst_group_season_plot = group_season_for_plotting %>% 
ggplot(aes(x = as.factor(Week), y = `Win Percentage`))+
  geom_point()+
  geom_path(aes(x = Week))+
  ylim(c(0, 1)) +
  xlab("NFL Week") + 
  ylab("Correct Percentage")+
  ggtitle("Weekly Group Correct Percentage")+
  theme_classic()+
  theme(plot.title = element_text(hjust = 0.5, size = 18))
```

```{r beating cbs week, include=FALSE}
#Creating a list of correct percentages for each week.
cbs_weekly_percent = map(weeks, cbs_percent)

#Creating a list of how many cbs experts we beat each week.
cbs_experts_beat = map2(cbs_weekly_percent, weekly_win_percentage, experts_beat)

#Creating a list of how many cbs experts picked each week.  
cbs_experts_total = map(cbs_weekly_percent, experts_tot)
```

```{r beating cbs season, include=FALSE}
#Creating a list of correct percentages for each week.
cbs_season_percent = map(weeks, cbs_season_percent)

#Creating a list of how many cbs experts we beat each week.
cbs_experts_beat_season = map2(cbs_season_percent, season_win_percentage, experts_beat)

#Creating a list of how many cbs experts picked each week.  
cbs_experts_season_total = map(cbs_season_percent, experts_tot)
```

```{r beating ESPN week, include=FALSE}
#Creating a list of correct percentages for each week.
espn_weekly_percent = map(weeks, espn_percent)

#Creating a list of how many cbs experts we beat each week.
espn_experts_beat = map2(espn_weekly_percent, weekly_win_percentage, experts_beat)

#Creating a list of how many cbs experts picked each week.  
espn_experts_total = map(espn_weekly_percent, experts_tot)
```

```{r beating ESPN season, include=FALSE}
#Creating a list of correct percentages for each week.
espn_season_percent = map(weeks, espn_season_percent)

#Creating a list of how many cbs experts we beat each week.
espn_experts_beat_season = map2(espn_season_percent, season_win_percentage, experts_beat)

#Creating a list of how many cbs experts picked each week.  
espn_experts_season_total = map(espn_season_percent, experts_tot)
```

```{r individual results, include=FALSE}
#Creating a list of individual results for each week.
weekly_indiv = pmap(list(inst.picks, winners, weeks), indiv_weekly_pred)

#Combining each week into one dataframe and calculating percentage Correct for this week.  
full_season = weekly_indiv %>% reduce(full_join, by = "Name") %>% 
  mutate(Percent = round(pull(.[,ncol(.)]/weekly_number_of_games[[length(weekly_number_of_games)]]),4)) 

#Creating a dataframe with only the weekly picks
a = full_season %>% select(starts_with("Week"))

#Creating a vector of how many weeks each person picked over the season
tot_week = NULL
help = NULL
for (i in 1:dim(a)[1]){
  for(j in 1:length(a)){
    help[j] = ifelse(is.na(a[i,j])==T,0,1)
    tot_week[i] = sum(help)
  }
}

#Creating a vector of how many games each person picked over the season
tot_picks= NULL
help = NULL
for (i in 1:dim(a)[1]){
  for(j in 1:length(a)){
    help[j] = unlist(weekly_games_picked)[j]*ifelse(is.na(a[i,j])==T,0,1)
    tot_picks[i] = sum(help)
  }
}

#Creatign a vector of how many games each person picked correct over the season
tot_correct = NULL
help = NULL
for (i in 1:dim(a)[1]){
  tot_correct[i] = sum(a[i,], na.rm = T)
}

#adding how many weeks each person picked, season correct percentage, and adjusted season percentag to the data frame and sorting the data
indiv_disp = full_season %>% add_column(`Weeks Picked` = tot_week) %>%
  add_column(tot_correct)%>%
  add_column(tot_picks)%>%
  mutate(`Season Percent` = round(tot_correct/tot_picks,4))%>%
  mutate(`Adj Season Percent` = round(`Season Percent`*(tot_week/length(a)),4)) %>%
  select(-tot_correct, -tot_picks) %>%
  arrange(desc(Percent), desc(`Season Percent`)) %>%
  mutate(Percent = ifelse(is.na(Percent)==T, 0, Percent))
```


```{r individual percentages, include=FALSE}
#Calculating individual percentages for each week.
weekly_indiv_percent = map2(weekly_indiv, as.list(weekly_number_of_games), indiv_percent) %>% reduce(full_join, by = "Name")

weekly_indiv_percent_plot = weekly_indiv_percent %>% 
  pivot_longer(cols = starts_with("Week"), names_to = "Week", values_to = "Percent")%>%
  mutate(Percent = ifelse(is.na(Percent)==T, 0, Percent)) %>% 
  mutate(Week = as.factor(Week))

levels = NULL
for(i in 1:length(weeks)){
  levels[i] = glue("Week {i}")  
}

weekly_indiv_percent_plot = weekly_indiv_percent_plot %>%
  mutate(Week = factor(Week, levels))
```

```{r sparklines, include=FALSE}
#adding sparklines
plot_group = function(name, df){
  plot_object = 
    ggplot(data = df,
           aes(x = as.factor(Week), y=Percent, group = 1))+
    geom_path(size = 7)+
    scale_y_continuous(limits = c(0,1))+
    theme_void()+
    theme(legend.position = "none")
  return(plot_object)
}

sparklines = 
  weekly_indiv_percent_plot %>% 
  group_by(Name) %>% 
  nest() %>% 
  mutate(plot = map2(Name, data, plot_group)) %>% 
  select(-data)
  
indiv_disp_2 = indiv_disp %>% 
  inner_join(sparklines, by = "Name") %>% 
  mutate(`Season Trend` = NA)
```

```{r Printing Individual Table2, echo=FALSE}
# Printing the individual Table
indiv_table = indiv_disp_2 %>% gt() %>% 
  cols_align(
    align = "center") %>% 
   tab_header(
    title = md("Individual Results"),
    subtitle = md(glue("Week {length(weeks)}"))
    ) %>% 
   tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(Percent),
      rows = Percent<.5
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(Percent),
      rows = Percent>.5
    )) %>% 
     tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(`Season Percent`),
      rows = `Season Percent`<.5
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(`Season Percent`),
      rows = `Season Percent`>.5
    ))%>% 
     tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(`Adj Season Percent`),
      rows = `Adj Season Percent`<.5
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(`Adj Season Percent`),
      rows = `Adj Season Percent`>.5
    )) %>% 
  tab_options(
    container.width = pct(100),
    data_row.padding = px(1),
    container.height = "100%"
   ) %>%
    tab_spanner(
    label = "Weekly # Correct",
    columns = starts_with(c("Week "))
  ) %>% 
  text_transform(
    locations = cells_body(c(`Season Trend`)),
    fn = function(x){
      map(indiv_disp_2$plot, ggplot_image, height = px(30), aspect_ratio = 4)
                 }) %>%
  cols_hide(c(plot))

indiv_winners = indiv_disp_2 %>% filter(Percent == max(Percent)) %>% select(Name) %>% pull() %>% paste(collapse = ", ")
indiv_season = indiv_disp_2 %>% filter(`Season Percent` == max(`Season Percent`)) %>% select(Name) %>% pull() %>% paste(collapse = ", ")
indiv_season_adj = indiv_disp_2 %>% filter(`Adj Season Percent` == max(`Adj Season Percent`)) %>% select(Name) %>% pull()%>% paste(collapse = ", ")
```

```{r Printing Season Leaderboard, echo=FALSE}
# Printing the Season Leaderboard
  
season_leaderboard_disp = indiv_disp_2 %>% select(Name, starts_with("Week ")) %>% 
  pivot_longer(starts_with("Week"),names_to = "Week", values_to = "Correct") %>% 
  group_by(Week) %>% 
  mutate(Correct = case_when(is.na(Correct)==T~0, 
                             TRUE~Correct)) %>% 
  mutate(Donut = case_when(Correct==max(Correct)~1,
                           TRUE~0))  %>% 
  ungroup() %>% 
  group_by(Name) %>% 
  summarise(`Donuts Won` = sum(Donut)) %>% 
  #mutate(`Donuts Won` = strrep("award,", Donuts)) %>% 
  right_join(.,indiv_disp_2) %>% 
  select(-starts_with("Week "), -Percent) %>% 
  mutate(`Season Rank` = min_rank(desc(`Season Percent`)),.before = Name) %>% 
  arrange(`Season Rank`) 
  
season_leaderboard = season_leaderboard_disp %>% 
  gt() %>% 
  cols_align(
    align = "center") %>% 
   tab_header(
    title = md("Season Leaderboard (Season Percent)"),
    subtitle = md(glue("Week {length(weeks)}"))
    ) %>% 
  # fmt_icon(
  #   columns = `Donuts Won`,
  #   fill_color = "gold",
  # ) %>%
  tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(`Season Percent`),
      rows = `Season Percent`<.5
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(`Season Percent`),
      rows = `Season Percent`>.5
    ))%>% 
     tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(`Adj Season Percent`),
      rows = `Adj Season Percent`<.5
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(`Adj Season Percent`),
      rows = `Adj Season Percent`>.5
    )) %>% 
  tab_options(
    container.width = pct(100),
    data_row.padding = px(1),
    container.height = "100%"
   ) %>%
    tab_spanner(
    label = "Weekly # Correct",
    columns = starts_with(c("Week "))
  ) %>% 
  text_transform(
    locations = cells_body(c(`Season Trend`)),
    fn = function(x){
      map(season_leaderboard_disp$plot, ggplot_image, height = px(30), aspect_ratio = 4)
                 }) %>%
  cols_hide(columns = c(plot))
```

```{r Printing Adj Season Leaderboard, echo=FALSE}
# Printing the Adj Season Leaderboard
  
adj_season_leaderboard_disp = indiv_disp_2 %>% select(Name, starts_with("Week ")) %>% 
  pivot_longer(starts_with("Week"),names_to = "Week", values_to = "Correct") %>% 
  group_by(Week) %>% 
  mutate(Correct = case_when(is.na(Correct)==T~0, 
                             TRUE~Correct)) %>% 
  mutate(Donut = case_when(Correct==max(Correct)~1,
                           TRUE~0))  %>% 
  ungroup() %>% 
  group_by(Name) %>% 
  summarise(`Donuts Won` = sum(Donut)) %>% 
  #mutate(`Donuts Won` = strrep("award,", Donuts)) %>% 
  right_join(.,indiv_disp_2) %>% 
  select(-starts_with("Week "), -Percent) %>% 
  mutate(`Season Rank` = min_rank(desc(`Adj Season Percent`)),.before = Name) %>% 
  arrange(`Season Rank`)

adj_season_leaderboard = adj_season_leaderboard_disp %>% 
  gt() %>% 
  cols_align(
    align = "center") %>% 
   tab_header(
    title = md("Season Leaderboard (Adjusted Season Percent)"),
    subtitle = md(glue("Week {length(weeks)}"))
    ) %>% 
  # fmt_icon(
  #   columns = `Donuts Won`,
  #   fill_color = "gold",
  # ) %>%
  tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(`Season Percent`),
      rows = `Season Percent`<.5
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(`Season Percent`),
      rows = `Season Percent`>.5
    ))%>% 
     tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(`Adj Season Percent`),
      rows = `Adj Season Percent`<.5
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(`Adj Season Percent`),
      rows = `Adj Season Percent`>.5
    )) %>% 
  tab_options(
    container.width = pct(100),
    data_row.padding = px(1),
    container.height = "100%"
   ) %>%
    tab_spanner(
    label = "Weekly # Correct",
    columns = starts_with(c("Week "))
  ) %>% 
  text_transform(
    locations = cells_body(c(`Season Trend`)),
    fn = function(x){
      map(adj_season_leaderboard_disp$plot, ggplot_image, height = px(30), aspect_ratio = 4)
                 }) %>%
  cols_hide(columns = c(plot))
```


```{r instructor formattable, echo=FALSE}
improvement_formatter <- 
  formatter("span", 
            style = x ~ formattable::style(
              font.weight = "bold", 
              color = ifelse(x > .5, "green", ifelse(x < .5, "red", "black"))),
             x ~ icontext(ifelse(x == max(x), "star", ""), x))

indiv_disp_3 = indiv_disp_2 %>% select(-plot)
indiv_disp_3$`Season Trend` = apply(indiv_disp_3[,2:(1+length(weeks))], 1, FUN = function(x) as.character(htmltools::as.tags(sparkline(as.numeric(x), type = "line", chartRangeMin = 0, chartRangeMax = 1, fillColor = "white"))))

indiv_table_2 = as.htmlwidget(formattable(indiv_disp_3, 
                                align = c("l", rep("c", NROW(indiv_disp_3)-1)),
              list(`Season Percent` = color_bar("#FA614B"),
              `Season Percent`= improvement_formatter,
              `Adj Season Percent`= improvement_formatter)))
              
indiv_table_2$dependencies = c(indiv_table_2$dependencies, htmlwidgets:::widget_dependencies("sparkline", "sparkline"))
```

```{r Plotting individual results over the season2, eval=FALSE, include=FALSE, out.width="100%"}
#Creating the individual plot.  
inst_indiv_plots = weekly_indiv_percent_plot %>% 
  ggplot(aes(x = factor(Week), y = Percent, color = Name))+
  geom_point()+
  geom_path(aes(x = as.factor(Week), y = Percent, color = Name, 
                group = Name))+
  ylim(c(0, 1)) +
  labs(x = "NFL Week", 
       y = "Correct Percentage", 
       title = "Weekly Individual Correct Percentage")+
  facet_wrap(~Name)+
  theme_classic()+
  theme(legend.position = "none",
        plot.title = element_text(hjust = 0.5, size = 18),
        axis.text.x=element_text(angle =45, vjust = 1, hjust = 1))
```

```{r data for data page}
inst.data = map2(inst.picks, weeks, disp_data) %>% bind_rows()
```


```{r fivethirtyeight}
inst_538 = map(results, five38) %>% unlist() %>% sum()
```

```{r pregame, eval=FALSE, include=FALSE}
#Predictions for the week

#Creating the list of group predictions each week.
games = map(inst.picks, games_fn)

#Creating the prediction table.  
pred_table = map(games, pred_table_fn)

#Printing table of instructor predictions
pred_table[[length(pred_table)]] %>% mutate(Game = row_number()) %>% 
  rename(`Votes For` = votes_for, `Votes Against` = votes_against) %>% 
  gt() %>% 
  cols_align(
    align = "center") %>% 
   tab_header(
    title = md("This Week's Predictions"),
    subtitle = md(glue("Week {length(weeks)}"))
    ) %>% 
   tab_options(
    data_row.padding = px(3)
   )
```

Group Predictions
==========================================================================

Sidebar {.sidebar} 
-------------------------------------
#### CBS Sports

<font size="4">

This week we beat or tied `r cbs_experts_beat[[length(weeks)]]` of `r cbs_experts_total[[length(weeks)]]` CBS Sports' Experts.

For the season we are currently beating or tied with `r cbs_experts_beat_season[[length(weeks)]]` of `r cbs_experts_season_total[[length(weeks)]]` CBS Sports' Experts.
 
 </font>


#### ESPN

<font size="4">

We also beat or tied `r espn_experts_beat[[length(weeks)]]` of `r espn_experts_total[[length(weeks)]]` ESPN Experts.
 
For the season we are currently beating or tied with `r espn_experts_beat_season[[length(weeks)]]` of `r espn_experts_season_total[[length(weeks)]]` ESPN Experts.

</font>

Row
--------------------------------------

### Win percentage for the week

```{r}
inst_rate <- weekly_win_percentage[[length(weekly_win_percentage)]]*100
gauge(inst_rate, min = 0, max = 100, symbol = '%', gaugeSectors(
  success = c(55, 100), warning = c(40, 54), danger = c(0, 39)
))
```

### Season Win Percentage

```{r}
inst_season <- season_win_percentage*100
gauge(inst_season, min = 0, max = 100, symbol = '%', gaugeSectors(
  success = c(55, 100), warning = c(40, 54), danger = c(0, 39)
))
```

### Games Correct
```{r}
valueBox(value = season_wins,icon = "fa-trophy",caption = "Correct Games this Season")
```

### Games Picked
```{r}
valueBox(value = season_games,icon = "fa-clipboard-list",caption = "Games Picked this Season")
```

### Number of predictions
```{r}
valueBox(value = Total,icon = "fa-users",caption = "Predictions this week")
```

Row
--------------------------------------

### 

```{r}
inst_group_table
```

### 

```{r}
ggplotly(inst_group_season_plot) %>% 
  layout(title = list(y = .93, xref = "plot"),
         margin = list(t = 40))
```

Individual Predictions
==========================================================================


Sidebar {.sidebar} 
-------------------------------------

#### Best Picks of the Week.

<font size="4">

 `r indiv_winners`
 
 </font>
 
#### Best Season Correct Percentage
<font size="4">

`r indiv_season`
 
 </font>

#### Best Adjusted Season Correct Percentage
<font size="4">

`r indiv_season_adj`

 * Adjusted season percentage accounts for the number of weeks picked.
 
 </font>

row {.tabset}
--------------------------------------

### Individual Table
```{r}
indiv_table
```

<!--
### Individual Table2

```{r, out.height="100%"}
indiv_table_2
```

-->

<!--

### Individual Plots
```{r, out.width="100%"}
#ggplotly(inst_indiv_plots)
```

-->

### Season Leaderboard
```{r, out.width="100%"}
season_leaderboard
```

### Adjusted Season Leaderboard
```{r, out.width="100%"}
adj_season_leaderboard
```

Data
==========================================================================

```{r}
datatable(
  inst.data, extensions = 'Buttons', options = list(
    dom = 'Blfrtip',
    buttons = c('copy', 'csv', 'excel', 'pdf', 'print'),
    lengthMenue = list( c(10, 25, 50, 100, -1), c(10, 25, 50, 100, "All") )
  )
)
```